/*
 * Barrita.cpp
 *
 *  Created on: 23/10/2013
 *      Author: fernando
 */

#include "Barrita.h"
#include <string>
#include "SDL.h"

using std::string;

const char IMAGEN_BARRA_ROJA[] = "Imagenes/BarritaRoj";
const char IMAGEN_BARRA_AZUL[] = "Imagenes/BarritaAzu";
const char IMAGEN_BARRA_AMA[] = "Imagenes/BarritaAma";
const char IMAGEN_BARRA_VIO[] = "Imagenes/BarritaVio";
const char IMAGEN_BARRA_VER[] = "Imagenes/BarritaVer";
const char EXTENSION[] = ".png";
const int FRAMES_ELIMINACION = 6;
using std::vector;


Barrita::Barrita(int colour, int orient, unsigned int x, unsigned int y){
	color = colour;
	orientacion = orient;
	posX = x;
	posY = y;
	setImagen();
}

Barrita::~Barrita() {
}

void Barrita::setImagen(){
	string extra;
	if (orientacion == 0){
		extra = "H.png";
		for (int i = 1; i <= FRAMES_ELIMINACION; i++){
			secDestruccion.push_back(
			SDL::load_image("Imagenes/elimBarritaAmaH" + itoa(i) + EXTENSION));
		}
	}else{
		extra = "V.png";
		for (int i = 1; i <= FRAMES_ELIMINACION; i++){
			secDestruccion.push_back(
			SDL::load_image("Imagenes/elimBarritaAmaV" + itoa(i) + EXTENSION));
		}
	}
	switch(color){
	case ROJO:
		imagen = SDL::load_image(IMAGEN_BARRA_ROJA + extra);
		break;
	case AZUL:
		imagen = SDL::load_image(IMAGEN_BARRA_AZUL + extra);
		break;
	case AMARILLO:
		imagen = SDL::load_image(IMAGEN_BARRA_AMA + extra);
		if (orientacion == 0){

		}
		break;
	case VIOLETA:
		imagen = SDL::load_image(IMAGEN_BARRA_VIO + extra);
		break;
	case VERDE:
		imagen = SDL::load_image(IMAGEN_BARRA_VER + extra);
		break;
	}
	////	Pone como transparente el color negro
	SDL_SetColorKey(imagen , SDL_SRCCOLORKEY,
			SDL_MapRGB(imagen->format, 0, 0, 0));

	for (vector<SDL_Surface*>::iterator It = secDestruccion.begin();
					It != secDestruccion.end(); ++It){
			SDL_SetColorKey((*It), SDL_SRCCOLORKEY,
					SDL_MapRGB((*It)->format, 0, 0, 0));
	}
}
